package event

import (
	"codeup.aliyun.com/5f9118049cffa29cfdd3be1c/util"
	"fmt"
	"github.com/apache/rocketmq-client-go/v2/primitive"
)

func init() {
	SetRecoverLogger(nil)
}

// SetRecoverLogger 设置RocketMQ的recover的处理函数日志，不设置会导致协程panic后程序退出
func SetRecoverLogger(logger util.Logger) {
	SetRecoverHandler(func(err any) {
		if logger == nil {
			fmt.Printf("rocketmq 发生 panic：%+v\n", err)
			return
		}
		logger.Errorf("rocketmq 发生 panic：%+v", err)
	})
}

// SetRecoverHandler 设置RocketMQ的recover的处理函数，不设置会导致协程panic后程序退出
func SetRecoverHandler(fn func(any)) {
	primitive.PanicHandler = fn
}
